home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / importlib / __init__.pyc (.txt)
Python Compiled Bytecode  |  2014-12-31  |  1KB  |  47 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. '''Backport of importlib.import_module from 3.x.'''
  5. import sys
  6.  
  7. def _resolve_name(name, package, level):
  8.     '''Return the absolute name of the module to be imported.'''
  9.     if not hasattr(package, 'rindex'):
  10.         raise ValueError("'package' not set to a string")
  11.     dot = len(package)
  12.     for x in xrange(level, 1, -1):
  13.         
  14.         try:
  15.             dot = package.rindex('.', 0, dot)
  16.         continue
  17.         except ValueError:
  18.             raise ValueError('attempted relative import beyond top-level package')
  19.             continue
  20.         
  21.  
  22.     
  23.     return '%s.%s' % (package[:dot], name)
  24.  
  25.  
  26. def import_module(name, package = None):
  27.     """Import a module.
  28.  
  29.     The 'package' argument is required when performing a relative import. It
  30.     specifies the package to use as the anchor point from which to resolve the
  31.     relative import to an absolute import.
  32.  
  33.     """
  34.     if name.startswith('.'):
  35.         if not package:
  36.             raise TypeError("relative imports require the 'package' argument")
  37.         level = 0
  38.         for character in name:
  39.             if character != '.':
  40.                 break
  41.             level += 1
  42.         
  43.         name = _resolve_name(name[level:], package, level)
  44.     __import__(name)
  45.     return sys.modules[name]
  46.  
  47.